package com.mdd.common.entity.user;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

@Data
@ApiModel("用户信息实体")
public class User implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value="id", type= IdType.AUTO)
    @ApiModelProperty("ID")
    private Integer id;

    @ApiModelProperty("编号")
    private Integer sn;

    @ApiModelProperty("用户头像")
    private String avatar;

    @ApiModelProperty("真实姓名")
    private String realName;

    @ApiModelProperty("用户昵称")
    private String nickname;

    @ApiModelProperty("用户账号")
    private String username;

    @ApiModelProperty("用户密码")
    private String password;

    @ApiModelProperty("用户电话")
    private String mobile;

    @ApiModelProperty("用户钱包")
    private BigDecimal money;

    @ApiModelProperty("用户佣金")
    private BigDecimal earnings;
    
    @ApiModelProperty("用户积分")
    private BigDecimal integral;

    @ApiModelProperty("注册渠道")
    private Integer channel;

    @ApiModelProperty("加密盐巴")
    private String salt;

    @ApiModelProperty("用户性别: [1=男, 2=女]")
    private Integer sex=0;

    @ApiModelProperty("是否禁用: [0=否, 1=是]")
    private Integer isDisable;

    @ApiModelProperty("是否删除: [0=否, 1=是]")
    private Integer isDelete;

    @ApiModelProperty("是否注销: [0=否, 1=是]")
    private Integer isClose;

//    @ApiModelProperty("是否锁定分销: [0=否, 1=是]")
//    private Integer isLockLeader;

    @ApiModelProperty("最后登录IP")
    private String lastLoginIp;

    @ApiModelProperty("最后登录时间")
    private Long lastLoginTime;

    @ApiModelProperty("第一级上级")
    private Integer firstLeader;

    @ApiModelProperty("第二级上级")
    private Integer secondLeader;

    @ApiModelProperty("第三级上级")
    private Integer thirdLeader;

    @ApiModelProperty("关系链")
    private String ancestorRelation;

    @ApiModelProperty("邀请码")
    private String code;

    @ApiModelProperty("邀请人ID")
    private Integer inviterId;

    @ApiModelProperty("创建时间")
    private Long createTime;

    @ApiModelProperty("更新时间")
    private Long updateTime;

    @ApiModelProperty("删除时间")
    private Long deleteTime;

    @ApiModelProperty("是否为新用户: [0=否, 1=是]")
    private Integer isNew;
    
    @ApiModelProperty(value = "生日")
    private Date birthday;
    
    @ApiModelProperty(value = "邮箱")
    private String email;

    @ApiModelProperty(value = "地址")
    private String address;
    
    @ApiModelProperty(value = "职位")
    private String position;

    @ApiModelProperty(value = "单位名称")
    private String unitName;

    @ApiModelProperty(value = "纳税人识别号")
    private String taxNumber;

    @ApiModelProperty(value = "单位地址")
    private String unitAddress;

    @ApiModelProperty(value = "单位电话")
    private String unitPhone;

    @ApiModelProperty(value = "开户银行")
    private String bankName;

    @ApiModelProperty(value = "银行账号")
    private String bankCard;
    
    @ApiModelProperty("是否实名认证: [0=否, 1=是]")
    private Integer isAuth;
    
    @ApiModelProperty(value = "环信账号")
    private String emUsername;
    
    @ApiModelProperty(value = "环信密码")
    private String emPassword;

    @ApiModelProperty(value = "身份证号码")
    private String idCard;
    
    @ApiModelProperty(value = "身份证正面")
    private String frontView;
    
    @ApiModelProperty(value = "身份证反面")
    private String backView;
    
    private Integer isMsg;
    
    @ApiModelProperty(value = "是否可以提现 1=是 0=否")
    private Integer isWithdrawal;
    
    @ApiModelProperty(value = "是否注册 0未注册 1注册")
    @TableField(exist = false)
    private Integer isRegister=1;

}
